iT邦幫忙

2022 iThome 鐵人賽

DAY 12
0

一個完美的程式追求高內聚 & 低耦合

內聚性:模組本身可獨立完成功能

耦合性:模組跟模組相依程度

起初學習程式語言時常犯錯誤就是

  1. 很多重複代碼構成一個功能但不會寫成一個Method做呼叫
  2. 把很多功能放在一個Method裡
  3. 不會利用介面而多用繼承實作

對初學者來說寫出來一個可以Run的code就很開心

但面對到職場就會造成同事們的困擾,又計算機概論也頂多提到物件導向程式設計特性(繼承、封裝、多型)

就來以上三點常犯錯誤與內聚性/耦合性的關係來思考

  1. 未將執行同一功能程式碼包裝成一個方法,一條一條的編碼構成一個功能,即代碼間的耦合性很高,少了哪一段都無法作業,日後造成維護時都要修改很多行相同代碼,遺漏就很容易出bug,這也是為甚麼某些工程師很不喜歡維護或更改代碼的原因。
  2. 一個Method涵蓋太多相關連續功能,雖然一個Method可以完成一套流程看似內聚性高很完美,但假設Method的流程有變動,不就整個打掉重來,又用到相關Method編碼地方也是要修正,所以會聽到較好的做法利用封裝將多個Method聚合成一個Method。
  3. 子類別繼承雖只能繼承一個父類別,但本身也可以被其它子類別繼承,往往變成了一棵大樹,當要編修該方法時就造成諸多困擾(每棵樹的分支都要一一確認),太多繼承提高耦合性,故一般都會採用介面取代繼承

綜上就可以看出程式編碼追求高內聚低耦合

這也可以理解為甚麼Java會把goto從Keyword移除


上一篇
無法理解的商品 | 儲蓄險
下一篇
SQL | 神奇EXISTS
系列文
寫寫歷年職場經歷過的大小事或近期所學習的知識啟發30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言